home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1995-04-22 | 2.3 KB | 96 lines |
- DATETYPE=2 : LING=1 : ED$="0"
- Gosub INITDATECALC
- Gosub ACTUALDATE
- Gosub COMDATESTRING
- Gosub COMDATETIME
- Print Hex$(DATE,8),Hex$(TIME,8)
- Gosub COMDATESTRING
- End
- INITDATECALC:
- Dim MONTH(11),MONTH$(11,1),DAYNAM$(6,1)
- Restore MONTHLENGTHS
- For A=0 To 11
- Read MONTH(A)
- Next
- Restore MONTHNAMES
- For B=0 To 1
- For A=0 To 11
- Read MONTH$(A,B)
- Next
- Next
- Restore DAYNAMES
- For B=0 To 1
- For A=0 To 6
- Read DAYNAM$(A,B)
- Next
- Next
- Return
- ACTUALDATE:
- T$=Space$(12)
- Dreg(1)=Varptr(T$)
- A=Doscall(-192)
- L1=Leek(Varptr(T$))
- L2=Leek(Varptr(T$)+4)
- L3=Leek(Varptr(T$)+8)
- X=L1 : L=365
- YEAR=1978 : MON=0
- While X=>L
- Inc YEAR
- Add X,-L
- If(YEAR mod 4)=0 Then L=366 Else L=365
- Wend
- L=31
- While X=>L
- Inc MON
- Add X,-L
- L=MONTH(MON)
- If L=28 and(YEAR mod 4)=0 Then Inc L
- Wend
- DAY=X
- WEEKDAY=(L1+6) mod 7
- E1=L2/60 : E2=L2 mod 60 : E3=L3/50
- DATE=(YEAR-1978)*4096+MON*256+WEEKDAY*32+DAY
- TIME=E1*3600+E2*60+E3
- Return
- COMDATETIME:
- YEAR=(DATE/4096)+1978
- MON=(DATE/256) mod 16
- WEEKDAY=(DATE/32) mod 8
- DAY=DATE mod 32
- E1=TIME/3600
- E2=(TIME/60) mod 60
- E3=TIME mod 60
- Return
- COMDATESTRING:
- If DATETYPE=0
- D1$=""
- If MON<9 : D3$=ED$+Mid$(Str$(MON+1),2) : Else D3$=Mid$(Str$(MON+1),2) : End If
- End If
- If DATETYPE=1
- D1$=Left$(DAYNAM$(WEEKDAY,LING),3-LING)+" "
- D3$=Left$(MONTH$(MON,LING),3)
- End If
- If DATETYPE=2
- D1$=DAYNAM$(WEEKDAY,LING)+" "
- D3$=MONTH$(MON,LING)
- End If
- D2$=Mid$(Str$(DAY+1),2)
- If DAY<9 and DATETYPE<2 Then D2$=ED$+D2$
- If DATETYPE<2 Then D4$=Mid$(Str$(YEAR),4) Else D4$=Mid$(Str$(YEAR),2)
- E1$=Mid$(Str$(E1),2) : If E1<10 Then E1$=ED$+E1$
- E2$=Mid$(Str$(E2),2) : If E2<10 Then E2$=ED$+E2$
- E3$=Mid$(Str$(E3),2) : If E3<10 Then E3$=ED$+E3$
- If DATETYPE<2
- Print D1$;D2$;"-";D3$;"-";D4$;" ";E1$;":";E2$;":";E3$
- Else
- Print D1$;D2$;". ";D3$;" ";D4$;" ";E1$;":";E2$;":";E3$
- End If
- Return
- MONTHLENGTHS:
- Data 30,28,31,30,31,30,31,31,30,31,30,31
- MONTHNAMES:
- Data "January","February","March","April","May","June","July","August","September","November","December"
- Data "Januar","Februar","M�rz","April","Mai","Juni","Juli","August","September","November","Dezember"
- DAYNAMES:
- Data "Monday","Tuesday","Wednesday","Thusday","Friday","Saturday","Sunday"
- Data "Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"